Flight Modes and Protection Envelopes Based on Inertial Attitude Estimates for Radio-Controlled Airplanes

ABSTRACT

The present disclosure describes flight training systems and methods for radio-controlled (RC) airplanes that rely on inertial attitude estimates. Preferred embodiments include an RC airplane with one or more control processors configured to (i) estimate an inertial attitude of the RC airplane based on one or more measurements from an attitude sensor array and (ii) control the inertial attitude of the RC airplane based the inertial attitude estimate. In operation, controlling the attitude of the RC airplane may include both controlling the RC airplane to a specific inertial attitude and/or keeping the inertial attitude of the RC airplane within a predefined flight envelope.

FIELD

The disclosed systems and methods relate generally to flight modes andflight protection envelopes based on inertial attitude estimates forradio-controlled (RC) airplanes. Disclosed embodiments focus on flightmodes with flight protection envelopes for flight training methods usedwith fixed-wing RC airplanes.

BACKGROUND

When learning to fly an RC airplane, a new pilot may accidentally pilotthe RC airplane into an unintended attitude (roll, pitch, and yaw) thatmay cause the RC airplane to crash. To alleviate this concern, RCairplane manufacturers have developed RC airplane training systems thatattempt to reduce the likelihood of crashes caused by pilot error.

Some prior RC airplane training systems rely upon optical and/orinfrared (IR) sensors that monitor the angle of the airplane relative tothe horizon, and attempt return the RC airplane to a neutral positionrelative to the horizon, e.g, by leveling the wings with the horizon(i.e., adjusting the roll) and/or leveling the nose with the horizon(i.e., adjusting the pitch). Other prior airplane training systems relyupon off-axis gyroscopes to keep the wings and/or nose of the RCairplane to within a limited relative angular position.

However, the optical/IR sensors used in prior training systems areaffected by certain flight conditions that substantially limit theireffectiveness. For example, on overcast days or at dusk, it is moredifficult for the optical/IR sensors to discern the horizon. Similarly,flying near reflective surfaces such as bodies of water or reflectiveroadways or buildings limits the ability of the optical and/or IRsensors to discern the horizon. Additionally, optical/IR sensor-basedtraining systems are largely ineffective (if not wholly ineffective)when flying RC airplanes indoors, e.g., in gymnasiums, indoor stadiums,and other large indoor facilities.

Likewise, prior off-axis gyroscope-based training systems that rely onrelative angular position measurements have no inertial knowledge, andthus, are unable to (i) estimate the inertial positioning of the RCairplane, (ii) reliably keep the RC airplane within a particularinertial envelope, or (iii) control the RC airplane to a particularinertial attitude.

SUMMARY

Embodiments of the present invention overcome the limitations of priorRC airplane training systems by (i) estimating an inertial attitude ofthe RC airplane based on one or more measurements from an attitudesensor array, (ii) using the estimated inertial attitude to command theRC airplane to a specific inertial attitude and/or (iii) using theestimated inertial attitude in combination with inertial-attitude basedflight envelopes to keep the RC airplane within a predefined inertialattitude flight envelope.

In contrast to embodiments of the present invention, prior optical/IRand/or off-axis gyroscope based training systems that rely on relativeangular positioning have no inertial knowledge, and are therefore unableto command the RC airplane to a specific inertial attitude or to limitthe RC airplane to specific inertial attitudes. Because embodiments ofthe present invention rely on an inertial attitude estimate from asensor array rather than relative angular positioning determined byoptical/IR and/or other sensors, they are not affected (or worst caseonly nominally affected) in cloudy or overcast weather conditions orwhen flying near highly reflective objects (e.g., bodies of water,reflective roads and buildings), and they can be used when flying planesindoors (e.g., in large gymnasiums, indoor stadiums, and other largeindoor facilities).

Some embodiments include a method of controlling a remote-controlled(RC) airplane that comprises (i) estimating an inertial attitude of theRC airplane based on one or more measurements from an attitude sensorarray, and (ii) controlling the RC airplane based on the estimatedinertial attitude. Some embodiments include one or more fight modes,wherein each flight mode has a corresponding inertial flight envelope,and where each inertial flight envelope includes a predefined range foran inertial pitch and a predefined range for an inertial roll. In someembodiments, the flight envelope may additionally include predefinedranges for inertial yaw, altitude, airspeed, and/or location.

In some embodiments, the attitude sensor array comprises (i) one or moreaccelerometers to measure inertial acceleration along each of the roll,pitch, and yaw axes of the RC airplane and (ii) one or more gyroscopesconfigured to measure angular velocity about the pitch and roll axes ofthe RC airplane. In some embodiments, the one or more gyroscopes may beconfigured to additionally measure the angular velocity about the yawaxis of the RC airplane.

In operation, controlling the RC airplane based on the command data andthe estimated inertial attitude enables the disclosed embodiments toeither or both (i) return the RC airplane to a specific inertialattitude and/or (ii) keep the RC airplane within a predefined inertialattitude flight envelope.

In some embodiments, the pilot may activate a particular flight mode(and its corresponding inertial flight envelope) by depressing a buttonor activating a switch on a controller associated with the RC airplane.In such embodiments, the pilot has the option of flying the RC airplanein one of a plurality of flight modes, wherein individual flight modeshave corresponding flight envelopes.

In preferred embodiments, the RC airplane has four flight modes andthree flight envelopes: (i) a “panic” mode that uses a correspondingpanic flight envelope, (ii) a “beginner” mode that uses a correspondingbeginner flight envelope, (iii) an “intermediate” mode that uses acorresponding intermediate flight envelope, and (iv) an “advanced” modewhere no flight envelope is used.

In operation, the pilot may activate the panic mode in situations wherethe pilot realizes that he or she has piloted the RC airplane into anundesirable attitude that, if un-corrected, may cause the RC airplane tocrash. When the pilot activates the panic mode (typically by activatinga button or switch on the controller), the RC airplane autonomouslyflies itself to a specific inertial attitude defined by the panic modeflight envelope. In practice, the specific inertial attitude of thepanic mode flight envelope corresponds to an inertial attitude thatcauses the plane to stabilize itself and fly in a generally circularpattern over the pilot at a safe airspeed and altitude to avoid a crash.

The beginner mode may be desirable when the pilot is learning to fly theRC airplane. Preferably, the flight envelope corresponding to thebeginner flight mode includes predefined ranges for at least inertialpitch and inertial roll that are designed to keep the RC airplane withinan inertial attitude that substantially reduces the likelihood of acrash. In preferred embodiments, the beginner mode may also include aself-leveling feature where the positioning of the control sticks on thecontroller correspond to particular inertial attitudes rather than ratesof rotation about the roll, pitch, and yaw axes as is typically the casewith controllers for RC airplanes. In the beginner flight mode, when theRC airplane determines that it has exceed one or more of the limitsdefined by the corresponding beginner flight envelope, the RC airplanewill control itself to be within the limits defined by the beginnerflight envelope so as to prevent (or at least substantially reduce) thepilot's ability to accidentally fly the RC airplane into an unintendedattitude.

The intermediate mode may be desirable when the pilot has some comfortlevel with flying the RC airplane, but may still wish to have thebenefit of a flight envelope to reduce the likelihood of crashing the RCairplane. When the intermediate mode is activated, the pilot is able tofly the plane naturally (i.e., without self-leveling) within the limitsof the inertial pitch and roll defined by the intermediate mode flightenvelope. When the RC airplane determines that it has exceed one or moreof the limits defined by the intermediate mode flight envelope, the RCairplane will control itself to be within the limits defined by theintermediate mode flight envelope so as to prevent (or at least reduce)the pilot's ability to accidentally fly the RC airplane into anunintended attitude.

The advanced mode may be desirable when the pilot is comfortable flyingthe RC airplane. When the advanced mode is activated, the pilot is ableto fly the plane normally (i.e., without self-leveling) and without anyinertial attitude limits imposed by a flight envelope. However, at anytime while flying the RC airplane, the pilot may choose to activate anyof the panic, beginner, or intermediate modes to enjoy the safety andbenefits (e.g., self-leveling and inertial flight envelopes) provided byeach corresponding flight mode.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an RC airplane according to an example embodiment.

FIG. 2 illustrates a system comprising a flight control processor and anattitude sensor array according to an example embodiment.

FIG. 3 illustrates a flight control algorithm according to an exampleembodiment.

DETAILED DESCRIPTION

The following detailed description includes references to theaccompanying figures. In the figures, similar symbols typically identifysimilar components, unless context dictates otherwise. The exampleembodiments described herein are not meant to be limiting. Otherembodiments may be utilized, and other changes may be made, withoutdeparting from the scope of the subject matter presented herein. It willbe readily understood that the aspects of the present disclosure, asgenerally described herein and illustrated in the figures can bearranged, substituted, combined, separated, and designed in a widevariety of different configurations, all of which are contemplatedherein.

FIG. 1 illustrates an RC airplane 100 according to an exampleembodiment. The RC airplane 100 comprises a plurality of controlsurfaces 101-105 that are mechanically and/or electrically controlled bya plurality of servomotors 206 (FIG. 2) in response to control signalsfrom a flight control processor 201 (FIG. 2). In operation, the flightcontrol processor 201 generates control signals based at least in parton flight commands received from a controller 109 via an RF link 110between the controller 109 and the RC airplane 100.

The control surfaces of RC airplane 100 include ailerons 101, 102,elevators 103, 104, and a rudder 105. Other embodiments may includeadditional or fewer control surfaces. While the specific types andconfigurations of control surfaces may vary according to the model of RCairplane, the purpose of the control surfaces is the same. Inparticular, the control surfaces 101-105 control the movements of the RCairplane 100 during flight.

The RC airplane 100 also includes an attitude sensor array 202 (FIG. 2)that sends sensor data to the flight control processor 201 (FIG. 2). Theattitude sensor array 202 includes one or more accelerometers andgyroscopes. In preferred embodiments, the sensor array comprises (i) oneor more accelerometers configured to measure inertial acceleration alongeach of the pitch axis 106, roll axis 107, and the yaw axis 108 of theRC airplane 100 and (ii) one or more gyroscopes configured to measureangular velocity about each of the pitch axis 106 and roll axis 107 ofthe RC airplane 100. In some embodiments, the one or more gyroscopes maybe configured to additionally measure angular velocity about the yawaxis 108 of the RC airplane 100. In operation, the flight controlprocessor 201 is configured to estimate an inertial attitude of the RCairplane 100 based on the one or more measurements from the attitudesensor array 202.

FIG. 2 illustrates a system 200 according to an example embodiment. Inoperation, the system 200 is a component of the RC airplane 100 (FIG.1). System 200 includes at least a flight control processor 201, anattitude sensor array 202, and a wireless transceiver 203. In someembodiments, the system 200 may additionally include one or morethrottle controllers 204, altitude sensors 208, airspeed sensors 209,and/or location sensors 210.

In some embodiments, the functional components of system 200 may belocated on a single printed circuit board or alternatively integratedwithin a single processor. In other embodiments, the components may belocated on different printed circuit boards, and/or the functions may bedistributed across multiple processors. Additionally, some functionalcomponents may be implemented as a single processor or as multipleprocessors. For example, the flight control processor 201 is shown as asingle processor, but the functions of the flight control processor 201may be performed by one or more processors operating in concert toperform the flight control processor 201 functions described herein.

The attitude sensor array 202 comprises (i) one or more accelerometersconfigured to measure inertial acceleration along each of the pitch,roll, and yaw axes of the RC airplane and (ii) one or more gyroscopesconfigured to measure angular velocity about each of the pitch and rollaxes of the RC airplane. In some embodiments, the one or more gyroscopesmay be configured to additionally measure angular velocity about the yawaxis of the RC airplane. In some embodiments, the accelerometers and thegyroscopes of the attitude sensor array 202 may be implemented as one ormore integrated circuits, chips, circuit boards, MicroElectro-Mechanical Systems (MEMS), or any combination thereof. In otherembodiments, the accelerometers and gyroscopes may be separate, discretecomponents. In a preferred embodiment, the accelerometers and gyroscopesof the attitude sensor array 202 are implemented as single integratedcircuit component with an output configured to interface with the flightcontrol processor 201. In some embodiments, the attitude sensor array202 may include an inertial measurement unit configured to provideinertial attitude measurements to the flight control processor 201.

The wireless transceiver 203 is configured to receive command data fromthe controller 109 (FIG. 1) associated with the RC airplane 100 (FIG.1), and to provide the command data to the flight control processor 201.The controller 109 includes one or more joysticks, wheels, buttons,and/or switches via which the pilot controls the flight of the RCairplane 100. In operation, the controller 109 translates the pilotinputs into command data that is sent to the RC airplane over theradio-frequency (RF) link 110 (FIG. 1) to the transceiver 203. Thecommand data may include data for controlling the flight of the RCairplane 100 and/or data for activating or deactivating RC airplanefeatures, such as selecting and/or activating/deactivating a selectedone or more flight modes as described herein.

The flight control processor 201 is configured to (i) estimate theinertial attitude (pitch, roll, and yaw) of the RC airplane based ondata received from the attitude sensor array 202 and (ii) control theinertial attitude of the RC airplane based on the inertial attitudeestimate. In operation, controlling the inertial attitude of the RCairplane based on the inertial attitude estimate includes either or both(i) controlling the RC airplane to a particular inertial attitude and/or(ii) keeping the inertial attitude of the RC airplane to within apredefined inertial attitude envelope, also referred to herein as aninertial flight envelope.

In preferred embodiments, the flight control processor 201 estimates theinertial pitch and the inertial roll of the RC airplane based ongyroscope and/or accelerometer data received from the attitude sensorarray 202 according to procedures that are known in the art. In someembodiments, the flight control processor 201 may additionally estimatethe inertial yaw of the RC airplane based on the accelerometer andgyroscope measurements from the attitude sensor array 202.

The flight control processor 201 is also configured to control theinertial attitude of the RC airplane by sending one or more (i) throttlecontrol signals to a throttle controller 204 to control the engine 205of the RC airplane, and/or (ii) servomotor control signals to one ormore servomotors 206 to manipulate the control surfaces 207, such ascontrol surfaces 101-105 (FIG. 1). In preferred embodiments, the flightcontrol processor 201 is configured to control the flight of the RCairplane based on any one of a set of flight modes, each of which can beactivated by the pilot. In some embodiments, one or more of the flightmodes may additionally engage a self-leveling functionality. In otherembodiments, self-leveling may be engaged and disengaged independent ofany particular flight mode. For example, in some embodiments, an RCairplane may have three separate flight modes, each of which may operatewith or without self-leveling engaged. In other embodiments, the RCairplane may have three separate flight modes with self-levelingautomatically engaged as an aspect one or more of the separate flightmodes.

Self-leveling is a capability performed by the flight controller 201 andis based on the inertial attitude estimate. When self-leveling isengaged, the joysticks on the controller 109 map to an inertial attitudeof the RC airplane 100 rather than a rate of rotation about acorresponding pitch, roll, or yaw axis of the RC airplane, which is howthe RC airplane would ordinarily respond to joystick movements.

Ordinarily, a controller 109 (FIG. 1) associated with the RC airplanehas two joysticks—a left joystick and a right joystick. Moving the leftjoystick up or down increases or decreases the throttle of the engine205. Moving the left joystick right or left causes the RC airplane torotate about its yaw axis 108 (FIG. 1), moving the right joystick up ordown causes the RC airplane to rotate about its pitch axis 106 (FIG. 1),and moving the right joystick left or right causes the RC airplane torotate about its roll axis 107 (FIG. 1).

In ordinary operation, when the pilot moves the joystick from its centerposition to the right, the RC airplane will roll to the right. When thepilot releases the joystick, the joystick will return (spring back) tothe center position on the controller 109, but the RC airplane will stayrolled to the right until the pilot moves the joystick to the left ofthe center position. Thus, after rolling the RC airplane to the right bymoving the joystick to the right of its center position, the pilot mustmove the joystick to the left of its center position to roll the planeback to a level flight position. In other words, the RC airplane doesnot roll back to a level flight position until the pilot explicitlycommands the RC airplane to do so. This characteristic of RC airplaneflight is referred to as “natural” flying herein because flying the RCairplane in this manner is substantially similar to flying a full-scaleairplane. That is, when flying a full-scale airplane, moving the stickto the right causes the full-scale airplane to roll to the right untilthe pilot explicitly commands the airplane to roll back to a levelflying position by moving the stick to the left of its center position.

Because natural flying mimics the characteristics of full-scaleairplanes, natural flying is considered by many RC airplane enthusiaststo be a highly desirable feature. However, for pilots who are new to RCairplanes, natural flying may seem quite unnatural at first because, touse the previous example, the RC airplane continues to roll even afterthe pilot has released the right joystick of the controller 109 and thejoystick of has sprung back to its center position. To some new pilots,the fact that the RC airplane continues to roll absent further inputfrom the controller 109 can be confusing, and in some circumstances, maycause the RC airplane to end up in an unintended inertial attitude thatmay result in a crash.

The self-leveling capability eliminates (or at least substantiallyameliorate) new pilot confusion associated with natural flying bymapping the positions of the joysticks on the controller 109 (FIG. 1) tospecific inertial attitudes of the RC airplane rather than to rates ofrotation about corresponding pitch, roll, and yaw axes. As a result,when the pilot releases the joystick, and the joystick springs back toits center position, the RC airplane returns to a level inertialattitude. Continuing with the previous example, when the pilot moves theright joystick of the controller 109 to the right, the RC airplane willroll to the right until the pilot the releases the right joystick(causing the joystick to spring back to its center position). When thejoystick springs back to its center position, the RC airplane will rollback to a level inertial attitude. Thus, when the pilot senses that heor she is losing control of the airplane, the pilot may simply releasethe joysticks, and the RC airplane will “level out” and return to alevel inertial attitude, thereby hopefully avoiding a crash.

The flight control processor 201 is able to return the RC airplane to alevel inertial attitude (i.e., “self-level” the RC airplane) based onthe inertial attitude estimate determined from the inputs received fromthe attitude sensor array 202. RC airplanes without an attitude sensorarray 202, or without the ability to otherwise estimate an inertialattitude are not able to self-level themselves to a neutral inertialattitude in this manner. Indeed, prior self-leveling mechanisms based onoptical or IR sensors can only level an RC airplane relative to thehorizon, which is often unreliable in certain flying conditions or evenimpossible indoors as previously described, and prior self-levelingmechanisms based on off-axis gyroscopes that measure relative angularposition have no inertial knowledge and cannot return the RC airplane toa neutral (or level) inertial attitude.

At least some flight modes also have a corresponding flight envelope. Inpreferred embodiments, the flight envelope includes a predefined rangefor the inertial pitch of the RC airplane and a predefined range for theinertial roll of the RC airplane. In such embodiments, the predefinedrange for the inertial pitch includes a minimum and a maximum pitchangle relative to the pitch axis 106 (FIG. 1) of the RC airplane, andthe predefined range for the inertial roll includes a minimum andmaximum pitch angle relative to the roll axis 107 (FIG. 1) of the RCairplane. In some embodiments, the flight envelope may also include apredefined range for the inertial yaw of the RC airplane. In suchembodiments, the predefined range for the inertial yaw of the RCairplane includes a minimum and maximum yaw angle relative to the yawaxis 108 (FIG. 1) of the RC airplane. In preferred embodiments,different flight modes may have different corresponding flight envelopeswith different corresponding predefined ranges for the inertial pitch,roll, and/or yaw of the RC airplane.

In preferred embodiments, the flight control processor 201 controls theRC airplane based on the command data, the estimated inertial attitude,and the inertial attitude limits defined by the flight envelope of theactive flight mode. In operation, the flight control processor 201 keepsthe RC airplane within the predefined ranges for the inertial pitch andthe inertial roll by sending servomotor control signals to theservomotors 206 that operate to adjust the control surfaces, such ascontrol surfaces 101-105 (FIG. 1). The flight control processor 201 mayalso keep the RC airplane within the predefined ranges for the inertialpitch and inertial roll by additionally sending throttle control signalsto the throttle controller 204 for the engine 205 to adjust the airspeedof the RC airplane.

Preferred embodiments include a “panic” flight mode that includesself-leveling and a flight envelope with a very narrow range of valuesfor the inertial pitch and inertial roll of the RC airplane. Inoperation, the pilot can activate the panic flight mode while the RCairplane is in flight by sending a command to activate the panic modeover the RF link 110 (FIG. 1) from the controller 109 (FIG. 1) to thetransceiver 203 of the RC airplane. In some embodiments, when the panicmode is activated, the flight control processor 201 is configured toautonomously fly the RC airplane to a particular inertial attitudewithin the corresponding flight envelope without further input from thepilot. Autonomously flying the RC airplane to within the flight envelopedefined by the panic mode without further input from the pilot has theadvantage of eliminating (or at least substantially reducing) thepossibility of crashing the RC airplane in situations where the pilotmay have inadvertently piloted the RC airplane to an undesirable or evendangerous attitude.

Preferred embodiments also include “beginner” and “intermediate” flightmodes. The beginner mode includes self-leveling and a flight envelopewith inertial pitch and inertial roll ranges that are wider than theinertial pitch and inertial roll ranges of the flight envelope for thepanic flight mode. The intermediate flight mode preferably does notinclude self-leveling, but does include a flight envelope with inertialpitch and inertial roll ranges that are wider than the inertial pitchand inertial roll ranges of the flight envelope in the panic flightmode. In some embodiments, the inertial pitch and inertial roll rangesfor the flight envelope in the intermediate mode are wider than theinertial pitch and inertial roll ranges for the flight envelope in thebeginner mode. But in other embodiments, the flight envelopes for theintermediate and beginner flight modes may have the same inertial pitchand inertial roll ranges with the only difference between the beginnerand intermediate flight modes being whether flight-leveling is engagedor not.

Preferred embodiments also include one flight mode that does not includeeither a corresponding flight envelope and where self-leveling isdisengaged (i.e., an “advanced” or “expert” mode). When flying the RCairplane in this mode, the flight control processor 201 controls the RCairplane based on the command data received via the transceiver 203 asis known in the art. In some embodiments, an “advanced” or “expert” modemay simply correspond to flying the RC airplane plane without aparticular flight mode activated.

In preferred embodiments, the pilot can activate, deactivate, or switchbetween flight modes before takeoff or during flight. In someembodiments, the flight control processor 201 is configured to activatea particular flight mode in response to receiving a flight modeactivation command from the controller 109 (FIG. 1) associated with theRC airplane. In such embodiments, the activation command is sent fromthe controller 109 over the RF link 110 (FIG. 1) to the transceiver 203of the RC airplane. The flight mode activation command may correspond tothe pilot engaging a button on the controller, setting a switch to acertain position on the controller, or any combination of engagedbuttons or switch position settings or other suitable activationmechanisms. But regardless of the timing of the activation or activationmechanism, once a selected flight mode is activated, the flight controlprocessor 201 thereafter controls the RC airplane based on the activatedflight mode, which includes a corresponding flight envelope alone or incombination with self-leveling engaged.

In some embodiments, the flight envelope may additionally include apredefined altitude range for the RC airplane that includes a maximumaltitude and a minimum altitude. In such embodiments, the system 200 mayadditionally include an altitude sensor 208 configured to send altitudedata to the flight control processor 201. In some embodiments, thealtitude sensor 208 may be an air pressure sensor, but any sensorsuitable for estimating the altitude of the RC airplane could be used.

In embodiments where the flight envelope additionally includes apredefined altitude range, the flight control processor 201 isconfigured to estimate the altitude of the RC airplane based on datareceived from the altitude sensor 208. And the flight control processor201 is further configured to keep the RC airplane within the predefinedaltitude range by sending one or both of (i) servomotor control signalsto the servomotors 206 to adjust the control surfaces 207, such ascontrol surfaces 101-105 (FIG. 1), and (ii) throttle control signals tothe throttle controller 204 for controlling the engine 205.

In further embodiments, the flight envelope may additionally include apredefined airspeed range for the RC airplane that includes a maximumand minimum airspeed. In such embodiments, the system may additionallyinclude an airspeed sensor 209 configured to send airspeed data to theflight control processor 201.

In embodiments where the flight envelope additionally includes apredefined airspeed range, the flight control processor 201 is furtherconfigured to estimate the airspeed of the RC airplane based on inputsfrom the airspeed sensor 209. And the flight control processor 201 isfurther configured to keep the RC airplane within the predefinedairspeed range by sending one or both of (i) servomotor control signalsto the servomotors 206 to adjust the control surfaces 207, such ascontrol surfaces 101-105 (FIG. 1), and (ii) throttle control signals tothe throttle controller 204 to control the engine 205.

In still further embodiments, the flight envelope may additionallyinclude a predefined location range for the RC airplane that includes amaximum and minimum distance from the RC airplane's take-off point (oranother defined location). In such embodiments, the system mayadditionally include one or more location sensors 210 configured to sendlocation information for the RC airplane to the flight control processor201. In some embodiments, the one or more location sensors 210 mayinclude a Global Positioning System (GPS) sensor and/or a magneticcompass, but any sensor suitable for estimating the location of the RCairplane could be used as well.

In embodiments where the flight envelope additionally includes apredefined location range, the flight control processor 201 is furtherconfigured to estimate the location of the RC airplane based on inputsfrom the location sensors 210. And the flight control processor 201 isconfigured to keep the RC airplane within the predefined location rangeby sending one or both of (i) servomotor control signals to theservomotors 206 to adjust the control surfaces 207, such as controlsurfaces 101-105 (FIG. 1), and (ii) throttle control signals to thethrottle controller 204 to control the engine 205.

FIG. 3 illustrates a flight control algorithm 300 according to anexample embodiment. In operation, algorithm 300 is executed by flightcontrol processor 201 (FIG. 2) to control the RC airplane 100 (FIG. 1).

Algorithm 300 begins at block 301 when the pilot activates one of theset of flight modes shown in table 302. Table 302 includes a set of fourflight modes: panic mode 303, beginner mode 304, intermediate mode 305,and advanced mode 306. Each flight mode in the table 302 has aself-leveling state (engaged/not engaged) and a corresponding flightenvelope.

In operation, the selected flight mode may be activated in response toreceiving a flight mode activation command from a controller associatedwith the RC airplane as describe previously. In algorithm 300, theactivated flight mode is one of the four flight modes shown in table302. However, other embodiments may have fewer or additional flightmodes.

Column 307 of table 302 indicates, for each flight mode, whether theflight mode utilizes self-leveling. In the embodiment shown in table302, the panic 303 and beginner 304 modes utilize self-leveling whereasthe intermediate 305 and advanced 306 modes do not utilizeself-leveling. As described previously, with self-leveling engaged, thejoysticks of the controller map to specific inertial attitude positions,whereas when self-leveling is not engaged, the joysticks map to a rateof rotation about a corresponding axis of the RC airplane (i.e.,“natural” flight control).

Column 308 of table 302 indicates the predefined flight envelopeparameters corresponding to each flight mode. For the panic mode 303,the predefined flight envelope parameters include (i) an inertial pitchrange of +1° to +10° relative to the pitch axis of the RC airplane and(ii) an inertial roll range of −15° to +15° relative to the roll axis ofthe RC airplane. For the beginner mode 304, the predefined flightenvelope parameters include (i) an inertial pitch range of −30° to +45°relative to the pitch axis of the RC airplane and (ii) an inertial rollrange of −45° to +45° relative to the roll axis of the RC airplane. Forthe intermediate mode 305, the predefined flight envelope parametersinclude (i) an inertial pitch range of −60° to +60° relative to thepitch axis of the RC airplane and (ii) an inertial roll range of −60° to+60° relative to the roll axis of the RC airplane. In table 302, theadvanced mode 305 has no predefined ranges for inertial pitch orinertial roll, which in practice may be implemented as either (i) theabsence of a flight envelope or (ii) a flight envelope with null valuesfor the maximum and minimum inertial pitch and roll.

In table 302, each of the panic 303, beginner 304, and intermediate 305flight modes have corresponding predefined ranges for inertial pitch andinertial roll. However, one or more of the panic 303, beginner 304, andintermediate 305 flight modes may additionally have predefined rangesfor inertial yaw, altitude, airspeed, and/or location as describedpreviously herein.

After activating a selected flight mode at block 301, algorithm 300proceeds to block 309 where a determination is made as to whether thecurrent inertial attitude of the RC airplane is within the predefinedranges of the flight envelope corresponding to the active flight mode.In operation, to determine whether the current inertial attitude of theRC airplane is within the predefined ranges of the flight envelopecorresponding to the active the flight mode, the flight controlprocessor 201 (i) receives the sensor data from the attitude sensorarray 202, (ii) filters the received sensor data for noise, vibration,and other interference, (iii) transforms the filtered sensor data to theRC airplane axes, (iv) estimates the inertial attitude of the RCairplane based on the transformed sensor data, and (v) compares theestimated inertial attitude of the RC airplane with the predefinedinertial attitude ranges of the flight envelope corresponding to theactive flight mode.

If at block 309 the estimated inertial attitude of the RC airplane iswithin the predefined ranges of the selected flight envelope, thenalgorithm 300 proceeds to block 311 to receive command data from thecontroller and then to block 312 to adjust the control surfaces 101-105and/or throttle based on the command data. When the estimated inertialattitude of the RC airplane is within the defined limits of the activeflight envelope, the flight control processor 201 (FIG. 2) adjusts thecontrol surfaces 207 (FIG. 2) and/or throttle based on flight commandsreceived from the controller 109 (FIG. 1) associated with RC airplane,and the flight control processor 201 need not adjust the controlsurfaces and/or throttle based on the predefined flight envelopecorresponding to the active flight mode.

Because self-leveling is engaged for the panic 303 and beginner 304flight modes, adjusting the control surfaces and/or throttle based onthe command data at block 312 includes controlling the RC airplane tothe specific inertial attitude corresponding to the positions of thecontroller joysticks based on the estimated inertial attitude of the RCairplane. But because self-leveling is not engaged for the intermediate305 and advanced 306 fight modes, adjusting the control surfaces and/orthrottle based on the command data at block 312 includes controlling therate of rotation about the roll, pitch, and yaw axes of the RC airplane,as is the case with “natural” flight control as described previously.

If at block 309, the flight control processor 201 instead determinesthat the current attitude of the RC airplane is outside of thepredefined ranges of the flight envelope corresponding to the activeflight mode, then algorithm 300 proceeds to block 310. At block 310, theflight control processor 201 adjusts the control surfaces and/or thethrottle until the inertial attitude of the RC airplane is within thepredefined ranges of the flight envelope corresponding to the activeflight mode. Once the RC airplane is within the predefined ranges of theflight envelope, the algorithm 300 proceeds to block 311.

At block 311, command data corresponding to one or more flight controlcommands is received from the controller 109, and algorithm 300 proceedsto block 312. And at block 312, the flight control processor 201 adjustsone or more control surfaces and/or the throttle based on the commanddata received at block 311. As described earlier, because self-levelingis engaged for the panic 303 and beginner 304 flight modes, adjustingthe control surfaces and/or throttle based on the command data at block312 includes controlling the RC airplane to the specific inertialattitude corresponding to the positions of the controller joystick basedon the estimated inertial attitude of the RC airplane. But becauseself-leveling is not engaged for the intermediate 305 and advanced 306fight modes, adjusting the control surfaces and/or throttle based on thecommand data at block 312 includes controlling the rate of rotationabout the roll, pitch, and yaw axes of the RC airplane, as is the casewith “natural” flight control as described previously.

After adjusting the one or more control surfaces and/or throttle atblock 312, algorithm 300 returns to block 309 where a new determinationis made as to whether the current attitude of the RC airplane is withinthe predefined ranges of the flight envelope corresponding to the activeflight mode.

Thus, for the intermediate flight mode 305, in instances where thecurrent attitude of the RC airplane is within the predefined limits ofthe corresponding flight envelope, algorithm 300 enables the pilot tofly the RC airplane naturally (as though there is no envelope activatedand without self-leveling engaged). In other words, in the intermediateflight mode 305, algorithm 300 uses the inertial attitude estimate tocontrol the attitude of the RC airplane only when the attitude of the RCairplane is determined to be exceeding the predefined ranges for theinertial pitch and inertial roll of the flight envelope for theintermediate flight mode 305. Otherwise, while the intermediate flightmode 305 is activated, algorithm 300 uses command data to control theattitude of the RC airplane according to the “natural” flight controlmechanisms, thereby resulting in a more natural-feeling flightexperience for the pilot as compared to previously-described priortraining systems.

Having the ability to fly the plane naturally in the intermediate mode205, but within the limits defined by the flight envelope, isadvantageous over prior training systems. In particular, prior trainingsystems continuously operate to return the RC airplane to a neutralposition relative to the horizon (or to a particular relative angularposition) while the pilot is flying the plane. Because prior trainingsystems continuously operate to bring the RC airplane back to the neuralangle relative to the horizon or axis, these systems result in anunnatural flying experience for the pilot and may make it more difficultfor the pilot to develop the skill required to fly the RC airplanewithout the training system engaged. In contrast to prior trainingsystems, while the RC airplane is operating in the intermediate flightmode 205, the pilot is able to fly the plane “naturally” (as though notraining system is activated) up until the point where the RC airplanereaches one or more of the limits defined by flight envelope of theintermediate flight mode 305. This ability to fly the RC airplanenaturally makes it easier for the pilot to develop the skill required tolater fly the RC airplane in the advanced flight mode 306.

While particular aspects and embodiments are disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art inview of the foregoing teaching. The various aspects and embodimentsdisclosed herein are for illustration purposes only and are not intendedto be limiting, with the true scope and spirit being indicated by thefollowing claims.

What is claimed is:
 1. A radio-controlled (RC) airplane comprising: areceiver configured to receive command data corresponding to one or moreflight control commands from an RC controller associated with the RCairplane; an attitude sensor array comprising one or more accelerometersand one more gyroscopes; a plurality of servomotors configured to adjustone or more control surfaces of the RC airplane; and one or moreprocessors configured to (i) estimate an inertial attitude of the RCairplane based on data received from the attitude sensor array, (ii)determine whether the estimated inertial attitude exceeds at least oneof a first inertial pitch range or a first inertial roll rangecorresponding to a first flight envelope of a first flight mode, (iii)in response to determining that the estimated inertial attitude exceedsat least one of the first inertial pitch range or the first inertialroll range, generate at least one control signal for application to atleast one of the plurality of servomotors to adjust one or more of thecontrol surfaces; and (iv) in response to receiving command datacomprising at least one control stick input, adjusting at least one of athrottle and/or one or more control surfaces of the RC airplane based onan inertial attitude corresponding to the at least one control stickinput, wherein the at least one control stick input corresponds to aninertial attitude of the RC airplane rather than a rate of rotationabout a corresponding pitch, roll, or yaw axis of the RC airplane. 2.The RC airplane of claim 1, wherein the first inertial pitch rangecomprises a minimum inertial pitch angle and a maximum inertial pitchangle, and wherein the first inertial roll range comprises a minimuminertial roll angle and a maximum inertial roll angle.
 3. The RCairplane of claim 2, further comprising: an engine and a throttlecontrol configured to control a speed of the engine; at least onealtitude sensor, and wherein the first flight envelope further comprisesa minimum altitude and a maximum altitude; and wherein the one or moreprocessors are further configured to (i) determine whether the RCairplane has either exceeded the maximum altitude or fallen below theminimum altitude, and (ii) in response to determining that the RCairplane has either exceeded the maximum altitude or fallen below theminimum altitude, generate at least one control signal for applicationto at least one of (a) the throttle control to adjust the speed of theengine or (b) at least one of the plurality of servomotors to adjust oneor more of the control surfaces.
 4. The RC airplane of claim 2, furthercomprising: an engine and a throttle control configured to control aspeed of the engine; at least one airspeed sensor, and wherein the firstflight envelope further comprises a minimum airspeed and a maximumairspeed; and wherein the one or more processors are further configuredto (i) determine whether the RC airplane has either exceeded the maximumairspeed or fallen below the minimum airspeed, and (ii) in response todetermining that the RC airplane has either exceeded the maximumairspeed or fallen below the minimum airspeed, generate at least onecontrol signal for application to the throttle control to adjust thespeed of the engine.
 5. The RC airplane of claim 2, further comprising:at least one location sensor, and wherein the first flight envelopefurther comprises a maximum distance between the RC airplane and apredetermined location; and wherein the one or more processors arefurther configured to (i) determine whether the RC airplane has exceededthe maximum distance from the predetermined location and (ii) inresponse to determining that the RC airplane has exceeded the maximumdistance from the predetermined location, generate at least one controlsignal for application to at least one of (a) the throttle control toadjust the speed of the engine or (b) at least one of the plurality ofservomotors to adjust one or more of the control surfaces.
 6. The RCairplane of claim 1, wherein the first flight envelope further comprisesan inertial yaw range comprising a minimum inertial yaw angle and amaximum inertial yaw angle; and wherein the one or more processors arefurther configured to (i) determine whether the RC airplane has exceededthe inertial yaw range, and (ii) in response to determining that the RCairplane has exceeded the inertial yaw range, generate at least onecontrol signal for application to at least one of the plurality ofservomotors to adjust one or more of the control surfaces.
 7. The RCairplane of claim 1, wherein the one or more processors are furtherconfigured to activate the first flight mode of the plurality of flightmodes in response to receiving a flight mode activation command from anRC controller associated with the RC airplane.
 8. The RC airplane ofclaim 1, wherein the first flight mode is one of a plurality of flightmodes comprising: a panic flight mode comprising a panic flight envelopehaving corresponding ranges for inertial pitch and inertial roll; thefirst flight mode, wherein the first inertial pitch range and the firstinertial roll range of the first flight envelope are wider than thecorresponding inertial pitch and inertial roll ranges for the panicflight mode; and a second flight mode comprising a second flightenvelope having a second inertial pitch range that is wider than thefirst inertial pitch range of the first flight envelope of the firstflight mode and a second inertial roll range that is wider than thefirst inertial roll range of the first flight envelope of the firstflight mode.
 9. A flight control unit for a radio-controlled (RC)airplane comprising: a receiver configured to receive command datacorresponding to one or more flight control commands from an RCcontroller associated with the RC airplane; an attitude sensor arraycomprising one or more accelerometers and one more gyroscopes; and oneor more processors configured to (i) estimate an inertial attitude ofthe RC airplane based on data received from the attitude sensor array,(ii) determine whether the estimated inertial attitude exceeds at leastone of a first inertial pitch range or a first inertial roll rangecorresponding to a first flight envelope of a first flight mode, (iii)in response to determining that the estimated inertial attitude exceedsat least one of the first inertial pitch range or the first inertialroll range, generate at least one control signal for application to atleast one of a plurality of servomotors to adjust one or more of thecontrol surfaces, wherein the plurality of servomotors are configured toadjust one or more control surfaces of the RC airplane; and (iv) inresponse to receiving command data comprising at least one control stickinput, adjusting at least one of a throttle and/or one or more controlsurfaces of the RC airplane based on an inertial attitude correspondingto the at least one control stick input, wherein the at least onecontrol stick input corresponds to an inertial attitude of the RCairplane rather than a rate of rotation about a corresponding pitch,roll, or yaw axis of the RC airplane.
 10. The flight control unit ofclaim 9, wherein the first inertial pitch range comprises a minimuminertial pitch angle and a maximum inertial pitch angle, and wherein thefirst inertial roll range comprises a minimum inertial roll angle and amaximum inertial roll angle.
 11. The flight control unit of claim 10,further comprising: at least one altitude sensor, wherein the firstflight envelope further comprises a minimum altitude and a maximumaltitude; and wherein the one or more processors are further configuredto (i) control a speed of an engine via a throttle control, (ii)determine whether the RC airplane has either exceeded the maximumaltitude or fallen below the minimum altitude, and (iii) in response todetermining that the RC airplane has either exceeded the maximumaltitude or fallen below the minimum altitude, generate at least onecontrol signal for application to at least one of (a) the throttlecontrol to adjust the speed of the engine or (b) at least one of theplurality of servomotors to adjust one or more of the control surfaces.12. The flight control unit of claim 10, further comprising: at leastone airspeed sensor, wherein the first flight envelope further comprisesa minimum airspeed and a maximum airspeed; and wherein the one or moreprocessors are further configured to (i) control a speed of an enginevia a throttle control, (ii) determine whether the RC airplane haseither exceeded the maximum airspeed or fallen below the minimumairspeed, and (iii) in response to determining that the RC airplane haseither exceeded the maximum airspeed or fallen below the minimumairspeed, generate at least one control signal for application to thethrottle control to adjust the speed of the engine.
 13. The flightcontrol unit of claim 10, further comprising: at least one locationsensor, and wherein the first flight envelope further comprises amaximum distance between the RC airplane and a predetermined location;and wherein the one or more processors are further configured to (i)determine whether the RC airplane has exceeded the maximum distance fromthe predetermined location and (ii) in response to determining that theRC airplane has exceeded the maximum distance from the predeterminedlocation, generate at least one control signal for application to atleast one of (a) the throttle control to adjust the speed of the engineor (b) at least one of the plurality of servomotors to adjust one ormore of the control surfaces.
 14. The flight control unit of claim 9,wherein the first flight envelope further comprises an inertial yawrange comprising a minimum inertial yaw angle and a maximum inertial yawangle; and wherein the one or more processors are further configured to(i) determine whether the RC airplane has exceeded the inertial yawrange, and (ii) in response to determining that the RC airplane hasexceeded the inertial yaw range, generate at least one control signalfor application to at least one of the plurality of servomotors toadjust one or more of the control surfaces.
 15. The flight control unitof claim 9, wherein the one or more processors are further configured toactivate the first flight mode of the plurality of flight modes inresponse to receiving a flight mode activation command from an RCcontroller associated with the RC airplane.
 16. The flight control unitof claim 9, wherein the first flight mode is one of a plurality offlight modes comprising: a panic flight mode comprising a panic flightenvelope having corresponding ranges for inertial pitch and inertialroll; the first flight mode, wherein the first inertial pitch range andthe first inertial roll range of the first flight envelope are widerthan the corresponding inertial pitch and inertial roll ranges for thepanic flight mode; and a second flight mode comprising a second flightenvelope having a second inertial pitch range that is wider than thefirst inertial pitch range of the first flight envelope of the firstflight mode and a second inertial roll range that is wider than thefirst inertial roll range of the first flight envelope of the firstflight mode.